package com.yunhe.authority.service.authority;

import com.yunhe.authority.domain.authority.BackUser;
import com.yunhe.authority.domain.authority.User;
import com.yunhe.authority.domain.company.Employee;

/**
 * 实时数据Service
 * @desc 实时数据服务类定义
 * @author liuronglei
 */
public interface TokenService {
    /**
     * 添加值
     * @param key 键
     * @param value 值
     * @param liveTime 过期时间（秒）
     */
    void setString(String key, String value, Integer liveTime);

    /**
     * 获得值
     * @param key 键
     */
    String getString(String key);

    /**
     * 删除值
     * @param key 键
     */
    void delString(String key);

    /**
     * 是否存在键
     * @param key 键
     */
    boolean hasKey(String key);

    /**
     * 生成token
     * @param user 用户对象
     * @param systemId
     */
    String getToken(User user, String systemId);

    /**
     * 生成token
     * @param backUser 用户对象
     * @param systemId
     */
    String getBackToken(BackUser backUser, String systemId);

    /**
     * 生成退出登录的token
     * @param user
     * @return
     */
    String lostToken(User user);

    String getAppToken(User user, String systemId);

    String getWechatToken(String phone);
}
